<?php
require_once 'ApibaseController.php';

/**
 * 店舗問い合わせAPI<br />
 *
 * 店舗問い合わせAPI
 *
 * @package apamanshop
 * @author ushijima
 * @copyright コピーライト(要確認)
 */
class Inquiry_ApishopController extends Inquiry_ApibaseController
{
		//====================定数====================
	/** キャンペーン区切り文字 */
	const DELIM_CAMPAIGN = ";";
	/** お宝区切り文字 */
	const DELIM_OTAKARA = ",";

	//店舗情報
	private $shoplist = array();

	/** モバイル区分 */
	private $m_isMobile;
	private $m_strMobileKbn;
	/** 利用ｻｲﾄ区分 */
	private $m_strUseKbn;
	/** キャリア */
	private $m_carrier;

	/** あげちゃいますキャンペーン(全て)(Key:キャンペーンコード  Value:キャンペーン情報) */
	private $m_arrCampaignAgechauAll;
	/** あげちゃいますキャンペーン(Key:キャンペーンコード  Value:キャンペーン情報) */
	private $m_arrCampaignAgechau;
	/** あげちゃいますキャンペーンお宝(Key:キャンペーンコード  Value:お宝情報リスト) */
	private $m_arrCampaignAgechauTakara;
	/** 部屋付きキャンペーン（反響カウント用） */
	private $m_arrCampaignHeya;
	/** 部屋付きキャンペーン（メールタイトル用）(Key:キャンペーンコード  Value:キャンペーン情報) */
	private $m_arrCampaignHeyaList;

	/** W75LETTERS_CAMPAIGN 登録/更新件数 */
	private $m_insupdW75LettersCampaignCnt;
	/** W76APPLY_CAMPAIGN 登録件数 */
	private $m_insW76ApplyCampaignCnt;
	/** W25CAMPAIGN_DOWNLOAD_MNG 登録件数 */
	private $m_insW25CampaignDownloadMngCnt;

	/** 問い合わせID */
	private $m_strToiawaseId;

	/**
	 * 店舗問合せAPIアクション
	 *
	 * @access public
	 * @return void
	 */
	public function indexAction()
	{
		// 変数初期化処理 start
		$cntctWayFax = $this->_params['CntctWayFax'];
		$cntctWayMail = $this->_params['CntctWayMail'];
		$cntctWayTel = $this->_params['CntctWayTel'];
		$inquiry1 = $this->_params['Inquiry1'];
		$inquiry2 = $this->_params['Inquiry2'];
		$inquiry3 = $this->_params['Inquiry3'];
		$inquiry4 = $this->_params['Inquiry4'];
		$raitenDate = $this->_params['RaitenDate'];
		$raitenTime = $this->_params['RaitenTime'];
		$this->m_strUseKbn = $this->_params['UseKbn'];
		$arrBukken['tenpoCd'] = $this->_params['ShopCd'];
		$mail = $this->_params['Mail'];

		// モバイル区分・ジャンルコード
		$this->m_strMobileKbn = "";
		$this->m_carrier = "";
		$strLogGenruFlg = "";
		if (isset($this->_params['isMobile']) && !empty($this->_params['isMobile'])) {
			$this->m_isMobile = $this->_params['isMobile'];
			$strLogGenruFlg   = $this->_params['vintGenruFlg'];
			// iPhone、Android、スマホ用設定
			if ($strLogGenruFlg == '91' || $strLogGenruFlg == '92') {
				$this->m_isMobile = '2';
				$this->m_strUseKbn = "0";
				$this->m_carrier = "iPhone";
			}
			else if ($strLogGenruFlg == '93' || $strLogGenruFlg == '94') {
				$this->m_isMobile = '4';
				$this->m_strUseKbn = "0";
				$this->m_carrier = "Android";
			}
			else if ($strLogGenruFlg == '95' || $strLogGenruFlg == '96') {
				$this->m_isMobile = '3';
				$this->m_strUseKbn = "0";
				$this->m_carrier = "スマートフォン";
			}
			else if ($strLogGenruFlg == '105') {
				// スマホNifty用設定
				$this->m_isMobile  = '3';
				$this->m_strUseKbn = '3';
				$this->m_carrier = "スマートフォン";
			}
			else if (empty($strLogGenruFlg)) {
				$strLogGenruFlg = "1";
			}
			// モバイル用設定
			if ($this->m_isMobile == "1") {
				// 携帯Nifty用設定
				if ($strLogGenruFlg == '25' || $strLogGenruFlg == '26' || $strLogGenruFlg == '27') {
					$this->m_strUseKbn = "3";
				} else {
					$this->m_strUseKbn = "0";
				}
				// モバイル区分の判定
				if ($strLogGenruFlg == "1" || $strLogGenruFlg == "10" || $strLogGenruFlg == "25") {
					// i-mode
					$this->m_strMobileKbn = "1";
					$this->m_carrier = "i-mode";
				} else if ($strLogGenruFlg == "2" || $strLogGenruFlg == "11" || $strLogGenruFlg == "26") {
					// softbank
					$this->m_strMobileKbn = "2";
					$this->m_carrier = "SoftBank";
				} else if ($strLogGenruFlg == "3" || $strLogGenruFlg == "12" || $strLogGenruFlg == "27") {
					// au
					$this->m_strMobileKbn = "3";
					$this->m_carrier = "EZweb";
				}
			}
		} else {
			$this->m_isMobile = "0";
			if ($this->m_strUseKbn == "1") {
				$strLogGenruFlg = "13";
			} else {
				$strLogGenruFlg = "0";
			}
		}
		$add_params['isMobile'] = $this->m_isMobile;
		$add_params['Carrier']  = $this->m_carrier;

		// 名前
		$name = $this->_params['NameSei'];
		if (!empty($this->_params['NameMei'])) {
			$name .= "　" . $this->_params['NameMei'];
		}
		$add_params['Name'] = $name;

		// 20141211 S_Add
		// 名前(カナ)
		$nameKana = $this->_params['NameSeiKana'];
		if (!empty($this->_params['NameMeiKana'])) {
			$nameKana .= "　" . $this->_params['NameMeiKana'];
		}
		$add_params['NameKana'] = $nameKana;

		// 電話番号
		$add_params['Tel'] = $this->_params['Tel'];
		// メールアドレス
		$add_params['Mail'] = $this->_params['Mail'];

		// 無料電話使用有無
		$add_params['IS_FREE_CALL'] = $this->_params['IS_FREE_CALL'];
		// 20141211 E_Add
		
		$add_params ['CONVERT_CONNECTION_NO'] = $this->_params ['CONVERT_CONNECTION_NO'];// 20150128 Add
		
		// 希望時間
		$arrNeedTimeKbn = Array("希望なし","10時以前","10時～12時","12時～14時","14時～16時","16時～18時","18時以降");
		$add_params['strNeedTimeKbn'] = $arrNeedTimeKbn[$this->_params['NeedTimeKbn']];

		// 希望連絡手段
		$strCntctWayStr = "";
		$strCntctWayCd  = "";
		// 希望連絡(メールが設定されている場合)
		if ($cntctWayMail == "1") {
			$strCntctWayStr = $strCntctWayStr . "メール,";
			$strCntctWayCd  = "1";
		} else {
			$strCntctWayCd  = "0";
		}
		// 希望連絡(TEL)が設定されている場合
		if ($cntctWayTel == "1") {
			$strCntctWayStr = $strCntctWayStr . "ＴＥＬ,";
			$strCntctWayCd  = "1" . $strCntctWayCd;
		} else {
			$strCntctWayCd  = "0" . $strCntctWayCd;
		}
		// 希望連絡(FAX)が設定されている場合
		if ($cntctWayFax == "1") {
			$strCntctWayStr = $strCntctWayStr . "ＦＡＸ,";
			$strCntctWayCd  = $strCntctWayCd . "1";
		} else {
			$strCntctWayCd  = $strCntctWayCd . "0";
		}
		// 希望連絡手段に値が入ってたら、最後のカンマを除去する
		if($strCntctWayStr != "") $strCntctWayStr = rtrim($strCntctWayStr,",");
		$this->_params['CntctWayStr'] = $strCntctWayStr;
		$this->_params['CntctWayCd']  = $strCntctWayCd;

		$inquiryTxtList = array();
		$strInquiryTxt = "";
		$inqryFlg      = "";
		// 問合わせ内容1(店舗に直接行って相談したいかフラグ)
		if (!empty($inquiry1)) {
			$inquiryTxtList[3] = "店舗に直接行って相談したい";
			$inqryFlg = "1";
		} else {
			$inqryFlg = "0";
		}
		// 問合わせ内容2(希望条件に合う物件を探して欲しい)
		if (!empty($inquiry2)) {
			$inquiryTxtList[1] = "希望条件に合う物件を探して欲しい";
			$inqryFlg = $inqryFlg . "1";
		} else {
			$inqryFlg = $inqryFlg . "0";
		}
		// 問合わせ内容3(入居について相談したい)
		if (!empty($inquiry3)) {
			$inquiryTxtList[2] = "入居について相談したい";
			$inqryFlg = $inqryFlg . "1";
		} else {
			$inqryFlg = $inqryFlg . "0";
		}
		// 問合わせ内容4(その他)
		if (!empty($inquiry4)) {
			$inquiryTxtList[4] = "その他";
			$inqryFlg = $inqryFlg . "1";
		} else {
			$inqryFlg = $inqryFlg . "0";
		}
		if ($this->m_isMobile == "0") {
			// PC
			$strInquiryTxt = "　" . implode("\r\n　", $inquiryTxtList);
		} else {
			// PC以外は並び変え
			ksort($inquiryTxtList);
			$strInquiryTxt = implode("\r\n", $inquiryTxtList);
			if (!empty($raitenDate)) {
				// 日付
				$raitenTxt = "　希望来店日時:" . substr($raitenDate,2,2) . '/' . substr($raitenDate,4,2) . '/' . substr($raitenDate,6,2);
				// 時間
				$raitenTimeKbn = Array("1"=>"午前", "2"=>"午後");
				$raitenTimeTxt = $raitenTimeKbn[$raitenTime];
				if (!empty($raitenTimeTxt)) {
					$raitenTxt .= " " . $raitenTimeTxt;
				}
				// 希望連絡日時の追加
				$strInquiryTxt .= "\r\n" . $raitenTxt;
				// DB格納用
				$add_params['RaitenTxt'] = "\r\n" . $raitenTxt;
			}
			//$strInquiryTxt .= "\r\n";
		}
		$add_params['InquiryTxt'] = $strInquiryTxt;
		$add_params['InquiryFlg'] = $inqryFlg;

		$add_params['ComGenruFlg'] = $strLogGenruFlg;
		//6固定
		$add_params['ViewKbn'] = "6";

		//--- メール判定 ---
		$this->setSendMailFlag($this->_params['Mail']);

		// ﾛｸﾞ情報格納処理 *****************************************
		try {
			// モデルの呼び出し
			$this->_model = new Inquiry_Model_Apiinquiry();
			$this->_model_bukken = new Inquiry_Model_Apibukken();

            //トランザクション開始
			$db = $this->_model->getDbConnection();
			$this->_model->startTransaction($db);

			//問合わせID生成
			$this->m_strToiawaseId = strval($this->GetTimeString()) . strval($this->GetToiawaseSEQ($db));

			$add_params['InqNo'] = $this->m_strToiawaseId;

			//問合せﾕｰｻﾞ情報格納ｸｴﾘ取得処理
			$resultw25 = $this->_model->insInqUserLog2($db,$this->_params,$add_params);

			//ﾍﾟｰｼﾞﾋﾞｭｰ情報
			$resultvlog = $this->_model->pageViewLog($db,$this->_params,$add_params);

			//問合せ店舗一覧取得ｸｴﾘ
			//店舗情報取得
			$shopList = $this->_model->getInqShopQry($this->_params,$db);

			//--- あげちゃいますキャンペーン初期化 ---
			$this->MakeCampaignAgechau($this->_params["CampaignAgechau"]);

			//=====キャンペーン反響テーブルカウント(あげちゃいます)=====
			foreach ($this->m_arrCampaignAgechau as $key => $value)
			{
				$this->UpdLettersCampaign($db, $value["M94_CAMPAIGN_KBN"], $value["M94_CAMPAIGN_CD"], 2, $arrBukken);
			}

			//あげちゃいますキャンペーンはDBからデータ取得
			//お宝の表示は行わない
			$add_params['strDownloadUrl'] = "";
			$add_params['campaign'] = "";
			foreach ($this->m_arrCampaignAgechauAll as $campaignAll)
			{
				if(array_key_exists($campaignAll["M94_CAMPAIGN_CD"], $this->m_arrCampaignAgechau))
				{
					if($campaignAll["M94_CAMPAIGN_CD"] <> "17"){
						$add_params['campaign'] .= "＜" . $campaignAll["M94_CAMPAIGN_NAME"] . "＞　応募する\n";
					}
					else{
						$add_params['campaign'] .= "＜" . $campaignAll["M94_CAMPAIGN_NAME"] . "＞　希望する\n";
					}
					$add_params['campaign_str'] .= "　　　◆◆◆" . $campaignAll["M94_CAMPAIGN_NAME"] . "◆◆◆に、応募\n";
				}
				//else
				//{
				//	if($campaignAll["M94_CAMPAIGN_CD"] <> "17"){
				//		$add_params['campaign'] .= "＜" . $campaignAll["M94_CAMPAIGN_NAME"] . "＞　応募しない\n";
				//	}
				//	else{
				//		$add_params['campaign'] .= "＜" . $campaignAll["M94_CAMPAIGN_NAME"] . "＞　希望しない\n";
				//	}
				//}

				// アパマン48キャンペーン期間か
				if($campaignAll["M94_CAMPAIGN_CD"] == Apm_Config_Inquiry::AKB_CAMPAIGN_CD)
				{
					//=====キャンペーンダウンロード管理登録
					$this->m_insW25CampaignDownloadMngCnt += $this->_model_bukken->InsCampaignDownload($db, $this->m_strToiawaseId, $campaignAll["ACCESS_KEY"]);

					$add_params['isMobile'] = $this->m_isMobile;
					$add_params['strApaman48DownloadUrl'] = $this->_config['apm']['baseurl']. "AKB48/cp/download?id=". $this->m_strToiawaseId. "&key=".$campaignAll["ACCESS_KEY"];
				}
				//=====キャンペーンダウンロード管理
				if($campaignAll["M94_CAMPAIGN_CD"] == Apm_Config_Inquiry::EXILE_CAMPAIGN_CD)
				{
					// DB登録
					$this->m_insW25CampaignDownloadMngCnt += $this->_model_bukken->InsExileCampaignDownload($db, $this->m_strToiawaseId, $this->m_isMobile, $campaignAll["ACCESS_KEY"]);
					// URI生成
					if ($this->m_isMobile == "0") {
						// PC
						$strExileDownloadUrl = $this->_config['apm']['baseurl']. "exile/cp/download?id=". $this->m_strToiawaseId. "&key=".$campaignAll["ACCESS_KEY"];
					}
					else if ($this->m_isMobile == "1") {
						// mobile
						$strExileDownloadUrl = $this->_config['apm']['baseurl']. "mobile/exile/download?id=". $this->m_strToiawaseId. "&key=".$campaignAll["ACCESS_KEY"];
					}
					else {
						// SP
						$strExileDownloadUrl = $this->_config['apm']['baseurl']. "exile/cp/download/sp?id=". $this->m_strToiawaseId. "&kbn=".$this->m_isMobile. "&key=".$campaignAll["ACCESS_KEY"];
					}
					// メールMSG生成
					$strDownloadMsg = "";
					if ($this->m_isMobile == "0") {
						// PC
						$strDownloadMsg .= "■スクリーンセーバーダウンロード\n";
						$strDownloadMsg .= "現在、APAMANxEXILEキャンペーン中につき、お問合わせいただいた方全員に\n";
						$strDownloadMsg .= "もれなくAPAMANxEXILEオリジナルスクリーンセーバーを差し上げています。\n";
						$strDownloadMsg .= "下記、URLからダウンロードしてお楽しみください。\n";
						$strDownloadMsg .= "※ダウンロードは3回までとなっておりますのでご注意ください。\n";
					}
					else {
						$strDownloadMsg .= "■壁紙ダウンロード\n";
						$strDownloadMsg .= "現在、APAMANxEXILEキャンペーン中につき、お問合わせいただいた方全員に\n";
						$strDownloadMsg .= "もれなくAPAMANxEXILEオリジナル壁紙を差し上げています。\n";
						$strDownloadMsg .= "下記、URLからダウンロードしてお楽しみください。\n";
					}
					$strDownloadMsg .= " \n";
					$strDownloadMsg .= $strExileDownloadUrl."\n";
					
					$add_params['strDownloadUrl'] .= $strDownloadMsg;
				}
			}

			// INSERT START　リクエスト・店舗問い合わせログの記録 2011/09/26 ss-sakakibara
			//=====ログ情報保存=====
			if ($this->isLogIns())
			{
				$this->_model->InsInqTenpoLog($this->m_strToiawaseId, $this->_params['ShopCd'], $db);
			}
			// INSERT END　リクエスト・店舗問い合わせログの記録 2011/09/26 ss-sakakibara

			// ﾒｰﾙ送信処理 ********************************************
			$result =  $this->SendMailMain($mail, array_merge($add_params,$shopList[0]),$db);

			if($result == "0"){
				 $this->raiseError('メール送信エラー');
			}

			__log_debug(__FILE__, __LINE__, __METHOD__, "コミットします");
			$this->_model->commitTransaction($db);
			$db->closeConnection();

			$result = 1;

		} catch (Exception $e) {
			// エラー発生時
			__log_debug(__FILE__, __LINE__, __METHOD__, "ロールバックします");
			$this->_model->rollbackTransaction($db);
			$db->closeConnection();
			$result = 0;
		}
		// 返却データ作成
		$detailArr = array();
		array_push($detailArr,$resultw25,$resultvlog);

		$resResult = array('api_result' => array('result' => $result,'res_detail' => $detailArr));
		$resResult['CV_ToiawaseId'] = $this->m_strToiawaseId;
		// 返却処理
		$this->_api_data = $resResult;
		$this->display();
	}

	private function SendMailMain($mail,$addinfo,$db="") {
		// ｽﾃｰﾀｽ初期化
		$status = false;

		$userResult = 1;
		$shopResult = 1;
		$officeResult = 1;
		$aosshopResult = 1;
		$mailResult = 1;

		// ﾕｰｻﾞのﾒｰﾙｱﾄﾞﾚｽが設定されている場合はユーザへメール送信
		if ($mail != "") {
			$userResult = $this->SendMailUser($mail, $addinfo);
		}

		// 店舗へのメール送信
		// 店舗のﾒｰﾙｱﾄﾞﾚｽが設定されている場合
		if ($addinfo['M05_TENPO_MAIL'] != "") {
			// メール送信処理 for 店舗
			$shopResult = $this->SendMailShop($mail, $addinfo);
			// メール送信処理 for 本部
			$officeResult = $this->SendMailOffice($mail, $addinfo);
			
			// 20150127 S_Comment
// 			if($this->isAosShop($addinfo['M05_TENPO_CD'],$db) == true){
// 				// メール送信処理 for ＡＯＳ店舗
// 				$aosshopResult = $this->SendMailAosShop($mail, $addinfo);
// 			}
			// 20150127 E_Comment
		} else {
			// 店舗のメールアドレスが設定されていない場合
			// ﾒｰﾙ送信処理(ﾒｰﾙｱﾄﾞﾚｽ未設定時)
			$mailResult = $this->SendMailNoMail($mail, $addinfo);
		}

		$result = 1;
		if ( $userResult == 0 || $shopResult == 0 ||  $officeResult == 0 || $aosshopResult == 0 || $mailResult == 0) {
			$result = 0;
		}
		return $result;
	}

	 // 問い合わせユーザへのメール送信
	 private function SendMailUser($mail, $addinfo) {

		// from(送信元)、to（あて先)
		$strMailTo = array($mail => "");
		$strMailFrom = array(Apm_Config_Mail::MAIL_NETWORK => "");
		$strMailReply = array(Apm_Config_Mail::MAIL_LATE => "");


		// メール本文に必要なパラメータ
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_SUBJECT_KEY] ="［アパマンショップ］店舗へのお問い合わせのご確認";
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_TO_KEY] = $strMailTo;
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_FROM_KEY] = $strMailFrom;
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_REPLY_TO_KEY] = $strMailReply;

		// テンプレート選択
		$strMailTmp = "";
		if ($this->m_isMobile == "1") {
			// mobile
			$strMailTmp = "MailShopUserMobile.tpl";
		} else {
			// 他
			$strMailTmp = "MailShopUser.tpl";
		}

		// ﾒｰﾙ送信処理
		$result = $this->sendToiawaseMailJudge($strMailTmp, array_merge($this->_params,$addinfo), $mail_params, 3);
		//if($this->isSendUser() == true) {
		//	$result = $this->sendToiawaseMail($strMailTmp, array_merge($this->_params,$addinfo), $mail_params);
		//}

		return $result;
	}

	// 店舗へのメール送信
	private function SendMailShop($mail, $addinfo) {

		$strSubject = "●アパマンショップ・店舗へのお問い合わせメール";
		// キャリア付加
		if (!empty($this->m_carrier)) {
			$strSubject .= "＜{$this->m_carrier}版＞";
		}
		$strMailFrom = array( Apm_Config_Mail::MAIL_NETWORK => "");		//送信元ﾒｰﾙｱﾄﾞﾚｽ
		$strMailTo = array($addinfo['M05_TENPO_MAIL'] => "");		//送信先ﾒｰﾙｱﾄﾞﾚｽ
		$strMailReply = array($mail => "");
		$strMailCc = array();
		// 特定アドレスのCC追加
		$cc_list = Apm_Config_Inquiry::$SHOP_MAIL_CC_SHOP[$addinfo['M05_TENPO_CD']];
		if (!empty($cc_list) && is_array($cc_list)) {
			foreach ($cc_list as $ccMail) {
				$strMailCc[$ccMail] = "";
			}
		}

		//@ 送信先ﾒｰﾙｱﾄﾞﾚｽ
		// 本文の設定
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_SUBJECT_KEY] = $strSubject;
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_TO_KEY] = $strMailTo;
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_FROM_KEY] = $strMailFrom;
		if ($mail != "") {
			$mail_params[Apm_Otheritems::SEND_MAIL_EX_REPLY_TO_KEY] = $strMailReply;
		}
		if (count($strMailCc) > 0) {
			$mail_params[Apm_Otheritems::SEND_MAIL_EX_CC_KEY] = $strMailCc;
		}

		//メール制御ロジック
		$result = $this->sendToiawaseMailJudge("MailShopShop.tpl", array_merge($this->_params,$addinfo), $mail_params, 2);
		//if($this->isSendShop() == true) {
		//	// ﾒｰﾙ送信処理
		//	$result = $this->sendToiawaseMail("MailShopShop.tpl",array_merge($this->_params,$addinfo), $mail_params);
		//}else if($this->getReplaceShopMail() != "") {
		//	$mail_params[Apm_Otheritems::SEND_MAIL_EX_TO_KEY] = array($this->getReplaceShopMail() => "");
		//	if ($mail != "") {
		//		$mail_params[Apm_Otheritems::SEND_MAIL_EX_REPLY_TO_KEY] = array($this->getReplaceShopMail() => "");
		//	}
		//	// ﾒｰﾙ送信処理
		//	$result = $this->sendToiawaseMail("MailShopShop.tpl",array_merge($this->_params,$addinfo), $mail_params);
		//}

		return $result;
	}

	// 本部へのメール送信
	private function SendMailOffice($mail, $addinfo) {

		$strSubject = "●アパマンショップ・店舗へのお問い合わせメール";
		// キャリア付加
		if (!empty($this->m_carrier)) {
			$strSubject .= "＜{$this->m_carrier}版＞";
		}
		$strSubject .= "(" . $addinfo['M05_TENPO_NAME']  . ")";
		$strMailFrom = array(Apm_Config_Mail::MAIL_NETWORK => "");		//送信元ﾒｰﾙｱﾄﾞﾚｽ
		$strMailTo = array(Apm_Config_Mail::MAIL_NETWORK => "");			//送信先ﾒｰﾙｱﾄﾞﾚｽ
		$strMailReply = array($mail => "");

		//@ 送信先ﾒｰﾙｱﾄﾞﾚｽ
		// 本文の設定
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_SUBJECT_KEY] = $strSubject;
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_TO_KEY] = $strMailTo;
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_FROM_KEY] = $strMailFrom;
		if ($mail != "") {
			$mail_params[Apm_Otheritems::SEND_MAIL_EX_REPLY_TO_KEY] = $strMailReply;
		}

		$result = $this->sendToiawaseMailJudge("MailShopHonbu.tpl", array_merge($this->_params,$addinfo), $mail_params, 1);
		//if($this->isSendHonbu() == true) {
		//	// ﾒｰﾙ送信処理
		//	$result = $this->sendToiawaseMail("MailShopHonbu.tpl",array_merge($this->_params,$addinfo), $mail_params);
		//}else if($this->getReplaceHonbuMail() != "") {
		//	$mail_params[Apm_Otheritems::SEND_MAIL_EX_TO_KEY] = array($this->getReplaceHonbuMail() => "");
		//	if ($mail != "") {
		//		$mail_params[Apm_Otheritems::SEND_MAIL_EX_REPLY_TO_KEY] = array($this->getReplaceHonbuMail() => "");
		//	}
		//	// ﾒｰﾙ送信処理
		//	$result = $this->sendToiawaseMail("MailShopHonbu.tpl",array_merge($this->_params,$addinfo), $mail_params);
		//}

		return $result;
	}

	// AOS店舗へのメール送信
	private function SendMailAosShop($mail, $addinfo) {

		$strSubject = "●アパマンショップ・店舗へのお問い合わせメール";
		// キャリア付加
		if (!empty($this->m_carrier)) {
			$strSubject .= "＜{$this->m_carrier}版＞";
		}
		$strMailFrom = array(Apm_Config_Mail::MAIL_NETWORK => "");								//送信元ﾒｰﾙｱﾄﾞﾚｽ
		$strMailTo = array("aos_" . $addinfo['M05_TENPO_NO'] . "@apamanshop.co.jp" => "");		//送信先ﾒｰﾙｱﾄﾞﾚｽ

		//@ 送信先ﾒｰﾙｱﾄﾞﾚｽ
		// 本文の設定
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_SUBJECT_KEY] = $strSubject;
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_TO_KEY] = $strMailTo;
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_FROM_KEY] = $strMailFrom;

		$result = $this->sendToiawaseMailJudge("MailShopAosShop.tpl", array_merge($this->_params,$addinfo), $mail_params, 2);
		//if($this->isSendHonbu() == true) {
		//	// ﾒｰﾙ送信処理
		//	$result = $this->sendToiawaseMail("MailShopAosShop.tpl",array_merge($this->_params,$addinfo), $mail_params);
		//}else if($this->getReplaceHonbuMail() != "") {
		//	$mail_params[Apm_Otheritems::SEND_MAIL_EX_TO_KEY] = array($this->getReplaceHonbuMail() => "");
		//	// ﾒｰﾙ送信処理
		//	$result = $this->sendToiawaseMail("MailShopAosShop.tpl",array_merge($this->_params,$addinfo), $mail_params);
		//}

		return $result;
	}

	// 問い合わせメールエラー
	private function SendMailNoMail($mail, $addinfo) {

		$strSubject = "問い合わせメールエラー（店舗へのお問い合わせ）";
		$strMailFrom = array(Apm_Config_Mail::MAIL_NETWORK => "");					//送信元ﾒｰﾙｱﾄﾞﾚｽ
		$strMailTo = array(Apm_Config_Mail::MAIL_NETWORK => "");					//送信先ﾒｰﾙｱﾄﾞﾚｽ

		//@ 送信先ﾒｰﾙｱﾄﾞﾚｽ
		// 本文の設定
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_SUBJECT_KEY] = $strSubject;
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_TO_KEY] = $strMailTo;
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_FROM_KEY] = $strMailFrom;

		$result = $this->sendToiawaseMailJudge("MailShopError.tpl", array_merge($this->_params,$addinfo), $mail_params, 1);
		//if($this->isSendHonbu() == true) {
		//	// ﾒｰﾙ送信処理
		//	$result = $this->sendToiawaseMail("MailShopError.tpl",array_merge($this->_params,$addinfo), $mail_params);
		//}else if($this->getReplaceHonbuMail() != "") {
		//	$mail_params[Apm_Otheritems::SEND_MAIL_EX_TO_KEY] = array($this->getReplaceHonbuMail() => "");
		//	// ﾒｰﾙ送信処理
		//	$result = $this->sendToiawaseMail("MailShopError.tpl",array_merge($this->_params,$addinfo), $mail_params);
		//}

		return $result;
	}

	/**
	 * あげちゃいますキャンペーン情報を作成する
	 * 下記変数の初期化
	 *   $m_arrCampaignAgechauAll
	 *   $m_arrCampaignAgechau
	 *   $m_arrCampaignAgechauTakara
	 */
	private function MakeCampaignAgechau($strCampaignParam)
	{
		//一旦初期化
		$this->m_arrCampaignAgechauAll = array();
		$this->m_arrCampaignAgechau = array();
		$this->m_arrCampaignAgechauTakara = array();
		$this->m_arrCampaignHeya = array();

		$arrSelectCampaign;
		$arrCampaignInfo;

		$arrTakara;

		$campaign;
		$takara;

		// 対象AKBキャンペーン取得
		$this->m_arrCampaignAgechauAll = $this->_model_bukken->GetCampaignEx("2, 4", 2, $this->m_isMobile);

		if (!Apm_Otheritems::IsNullOrEmpty($strCampaignParam))
		{
			//キャンペーン毎に分割
			if (strpos($strCampaignParam, self::DELIM_CAMPAIGN) === false)
			{
				$arrSelectCampaign = array(str_replace(" ", "", $strCampaignParam));
			}
			else
			{
				$arrSelectCampaign = split(self::DELIM_CAMPAIGN, str_replace(" ", "", $strCampaignParam));
			}

			for ($i = 0; $i < count($arrSelectCampaign); $i++)
			{
				$arrTakara = array();
				$campaign = null;
				$takara = null;

				//キャンペーンとお宝を分割
				if (strpos($arrSelectCampaign[$i], self::DELIM_OTAKARA) === false)
				{
					$arrCampaignInfo = array(str_replace(" ", "", $arrSelectCampaign[$i]));
				}
				else
				{
					$arrCampaignInfo = split(self::DELIM_OTAKARA, str_replace(" ", "", $arrSelectCampaign[$i]));
				}

				for ($j = 0; $j < count($arrCampaignInfo); $j++)
				{
					if ($j == 0)
					{
						//先頭はキャンペーンコード
						//キャンペーン情報取得
						$campaign = $this->_model_bukken->GetCampaign("2, 4", $arrCampaignInfo[$j], $this->m_isMobile);
						if (count($campaign) == 0)
						{
							//万一取得できなかった場合はnullにして抜ける
							__log_debug(__FILE__, __LINE__, __METHOD__, $arrCampaignInfo[$j] . "のキャンペーンコードはありません");
							$campaign = null;
							break;
						}
					}
					else
					{
						//２番目以降はお宝コード
						$takara = $this->_model_bukken->GetCampaignTakara($campaign[0]["M94_CAMPAIGN_CD"], $arrCampaignInfo[$j]);
						if (count($takara) > 0)
						{
							//万一取得できなかった場合はnullにして抜ける
							__log_debug(__FILE__, __LINE__, __METHOD__, $campaign[0]["M94_CAMPAIGN_CD"] . "のキャンペーンコードの" . $arrCampaignInfo[$j] . "の宝はありません");
							$campaign = null;
							break;
						}
						$arrTakara[$arrCampaignInfo[$j]] = $takara[0];
					}
				}
				if (!is_null($campaign))
				{
					$this->m_arrCampaignAgechau[$campaign[0]["M94_CAMPAIGN_CD"]] = $campaign[0];
					$this->m_arrCampaignAgechauTakara[$campaign[0]["M94_CAMPAIGN_CD"]] = $arrTakara;
				}
			}
		}
	}

	/**
	 * キャンペーン反響数テーブル更新
	 *
	 * @param connection $db DBコネクション
	 * @param int $intCampaignKbn キャンペーン区分
	 * @param int $intCampaignCd キャンペーンコード
	 * @param int $intToiawaseKbn 問い合わせ区分
	 * @param array $arrBukken 物件データ（部屋付きキャンペーンのみ）
	 */
	private function UpdLettersCampaign($db, $intCampaignKbn, $intCampaignCd, $intToiawaseKbn, $arrBukken = array())
	{
		$arrLetterCampaign;

		$ymd = date("Ymd");
		$device = $this->m_isMobile;

		// モデル生成
		//$this->_model_bukken = new Inquiry_Model_Apibukken();

		$db_2 = $this->_model_bukken->getDbConnection();
		$this->_model_bukken->startTransaction($db_2);

		try
		{
			$arrLetterCampaign = $this->_model_bukken->GetLettersCampaign($db_2, $intCampaignKbn, $ymd, $intCampaignCd, $device, $intToiawaseKbn, 2);

			if (count($arrLetterCampaign) == 0)
			{
				$this->m_insupdW75LettersCampaignCnt += $this->_model_bukken->InsLettersCampaign($db_2, $intCampaignKbn, $ymd, $intCampaignCd, $device, $intToiawaseKbn, 2);
			}
			else
			{
				$this->m_insupdW75LettersCampaignCnt += $this->_model_bukken->UpdLettersCampaign($db_2, $intCampaignKbn, $ymd, $intCampaignCd, $device, $intToiawaseKbn, 2);
			}

			// キャンペーン応募状況を登録
			$this->m_insW76ApplyCampaignCnt += $this->_model_bukken->InsApplyCampaign($db_2, $intCampaignCd, $intToiawaseKbn, $this->m_strToiawaseId, $intCampaignKbn, $device, $arrBukken);

			$this->_model_bukken->commitTransaction($db_2);
			__log_debug(__FILE__, __LINE__, __METHOD__, "コミットしました");
			$db_2->closeConnection();
		}
		catch (Exception $e)
		{
			$this->_model_bukken->rollbackTransaction($db_2);
			__log_debug(__FILE__, __LINE__, __METHOD__, "ロールバックしました");
			$db_2->closeConnection();
			throw $e;
		}
	}
}
?>
